package com.example.recyclerview.utli;

import android.text.Editable;

public class EditLimitUtils {

    /**
     * 第一位不能是小数点；多个数据时不能0开头;小数点后保留两位
     */
    public static void twoDecimalPlaces(Editable editable) {
        decimalPlaces(editable, 2);
    }

    /**
     * 第一位不能是小数点；多个数据时不能0开头;小数点后保留number位
     */
    public static void decimalPlaces(Editable editable, int number) {
        if (editable.length() > 0) {
            String editStr = editable.toString().trim();
            //多个数据时不能0开头
            if (!nonzero(editable, editStr)) {
                return;
            }
            int posDot = editStr.indexOf(".");
            if (posDot >= 0) {
                //第一位不能是小数点
                if (posDot == 0) {
                    editable.delete(0, 1);
                    return;
                }
                //不允许输入3位小数,超过三位就删掉
                if (editStr.length() - posDot - 1 > number) {
                    editable.delete(posDot + number + 1, posDot + number + 2);
                }
            }
        }
    }

    /**
     * 多个数据时不能0开头
     * true为非0开头
     */
    public static boolean nonzero(Editable editable, CharSequence str) {
        //多个数据时不能0开头
        if (str.length() >= 2 && isNumber(str)) {
            editable.delete(0, 1);
            return false;
        }
        return true;
    }

    public static boolean isNumber(CharSequence str) {
        CharSequence a = str.subSequence(0, 2);
        switch (a.toString()) {
            case "00":
            case "01":
            case "02":
            case "03":
            case "04":
            case "05":
            case "06":
            case "07":
            case "08":
            case "09":
                return true;
        }
        return false;
    }
}
